namespace SharpGym.WinRT.Model
{
    using System;
    using System.Collections.Generic;

    public class RegistroDiario : BaseModel
    {
        private const double EPSILON = 0.0001;
        private Aluno _aluno;
        private double _fCfinal;
        private double _fCinicial;
        private DateTime _horaEntrada;
        private DateTime _horaSaida;
        private int _ordem;
        private readonly IList<PressaoArterial> _pressoesArterial = new List<PressaoArterial>();


        public IList<PressaoArterial> PressaoArterials
        {
            get { return _pressoesArterial; }
        }

        public DateTime HoraEntrada
        {
            get { return _horaEntrada; }
            set
            {
                if (HoraEntrada == value)
                    return;

                _horaEntrada = value;
                OnPropertyChanged("HoraEntrada");
            }
        }

        public DateTime HoraSaida
        {
            get { return _horaSaida; }
            set
            {
                if (HoraSaida == value)
                    return;

                _horaSaida = value;
                OnPropertyChanged("HoraSaida");
            }
        }

        public double FCinicial
        {
            get { return _fCinicial; }
            set
            {
                if (Math.Abs(FCinicial - value) < EPSILON)
                    return;

                _fCinicial = value;
                OnPropertyChanged("FCinicial");
            }
        }

        public double FCfinal
        {
            get { return _fCfinal; }
            set
            {
                if (Math.Abs(FCfinal - value) < EPSILON)
                    return;

                _fCfinal = value;
                OnPropertyChanged("FCfinal");
            }
        }


        public int Ordem
        {
            get { return _ordem; }
            set
            {
                if (Ordem == value)
                    return;

                _ordem = value;
                OnPropertyChanged("Ordem");
            }
        }


        public Aluno Aluno
        {
            get { return _aluno; }
            set
            {
                _aluno = value;
                OnPropertyChanged("Aluno");
            }
        }
    }
}